/**  
 * @Title: MybatisTigerAdminDao.java
 * @Package rml.dao
 * @date 2015年10月10日 下午1:17:28
 * @version V1.0  
 */
package com.tiger.cloud.common.mybatis;

import java.util.List;
import java.util.Map;

import com.tiger.cloud.common.mybatis.TigerAdminBaseEntity;
import com.tiger.cloud.common.rw.DataSource;
import com.tiger.cloud.common.rw.ProjectDataSource;

/**
 * 该类的功能用途 项目名称: [yfx]<br/>
 * 类名称: [MybatisTigerAdminDao]<br/>
 * 创建人: [GaoNan]<br/>
 * 创建时间: [2015年10月10日 下午1:17:28]<br/>
 * 修改人: [GaoNan]<br/>
 * 修改时间: [2015年10月10日 下午1:17:28]<br/>
 * 修改备注: [说明本次修改内容]<br/>
 * 版本: [v1.0]<br/>
 */
public interface MybatisTigerAdminDao<T extends TigerAdminBaseEntity>  extends MybatisDao  {

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	T get(final String id);

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	int insert(final T entity);

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	int insertBatch(final List<T> list);

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	int update(final T entity);

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	int remove(final Map<String, Object> params);

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	int removeByEntity(T entity);
	
	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	List<T> find(Map<String, Object> params);

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	long count(Map<String, Object> params);
	
	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	long countByEntity(T entity);

	@DataSource(value = ProjectDataSource.TIGER_ADMIN)
	List<T> findByEntity(T entity);

}
